// ===== CONFIGURACIÓN =====
var hojaPrincipal = "Hoja 1"; // nombre de la hoja donde están los datos

// ===== FUNCIONES PRINCIPALES =====

// Calcula solo los registros que no tengan el punto de rocío calculado
function calcularPuntoRocio() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var hoja = ss.getSheetByName(hojaPrincipal);

  var datos = hoja.getDataRange().getValues();
  for (var i = 1; i < datos.length; i++) {
    var temp = datos[i][4]; // Columna E = Temperatura
    var humedad = datos[i][3]; // Columna D = Humedad
    var rocio = datos[i][6]; // Columna G = Punto de rocío

    if (temp && humedad && rocio === "") {
      var puntoRocio = calcularMagnus(temp, humedad);
      var rocioFormateado = puntoRocio.toFixed(2).replace(".", ",");
      hoja.getRange(i + 1, 7).setValue(rocioFormateado);
    }
  }
}

// Si quieres recalcular TODOS los registros, aunque ya tengan datos
function recalcularTodosPuntosRocio() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var hoja = ss.getSheetByName(hojaPrincipal);

  var datos = hoja.getDataRange().getValues();
  for (var i = 1; i < datos.length; i++) {
    var temp = datos[i][5];
    var humedad = datos[i][3];

    if (temp && humedad) {
      var puntoRocio = calcularMagnus(temp, humedad);
      var rocioFormateado = puntoRocio.toFixed(2).replace(".", ",");
      hoja.getRange(i + 1, 7).setValue(rocioFormateado);
    }
  }
}

// Fórmula Magnus-Tetens
function calcularMagnus(temp, humedad) {
  var a = 17.27;
  var b = 237.7;
  var alpha = (a * temp) / (b + temp) + Math.log(humedad / 100);
  return (b * alpha) / (a - alpha);
}